package com.itheima.edu.info.mannager.dao;
/*库管类
1. 核心的职责是管理我们的仓库----数组 ;增删改查
2.这里的方法[功能]都是给业务员使用的    *
*
* */

import com.itheima.edu.info.mannager.domain.Student;
import java.lang.reflect.Array;

public class StudentDao {
    //1.创建一个长度为5的学生数组,用来充当数据仓库      ------>>>>>(必须要加static才能查询成功)
    private static Student[] stuArray = new Student[5];

    // 添加学生信息
    public boolean addStudent(Student stu) {
        //2.先定义一个标记: int index = -1,表示当前数组中没有索引位置可以
        int index = -1;

        //3. 遍历数组
        for (int i = 0; i < stuArray.length; i++) {
            //获取当前索引位置的元素
            Student student = stuArray[i];
            if (student == null) {
                //能进来说明有位置空缺,可以用来存放要添加的学生对象,这时
                index = i;
                //结束循环,避免占用后面的空位
                break;
            }
        }
        //4.出了循环,根据index的值就能够确定本次要添加的徐学生对象能不能添加
        if (index == -1) {
            return false;//表示添加失败,因为没有位置添加数据了
        } else {
            //将要添加的学生对象赋值到数组的index 索引位置
            stuArray[index] = stu;
            return true;
        }
    }
    // 查看学生方法
    public Student[] findAllStudent() {
        return stuArray;
    }

    // 删除学生信息
    public void deleteStudentById(String delId) {
        // 1. 查找id在容器中所在的索引位置
        int index = getIndex(delId);
        // 2. 将该索引位置,使用null元素进行覆盖
        stuArray[index] = null;
    }

    public int getIndex(String id) {
        int index = -1;
        for (int i = 0; i < stuArray.length; i++) {
            Student stu = stuArray[i];
            if (stu != null && stu.getSid().equals(id)) {
                index = i;
                break;
            }
        }
        return index;
    }

    // 修改学生信息
    public void updateStudent(String updateId, Student newStu) {
        // 1. 查找updateId, 在容器中的索引位置
        int index = getIndex(updateId);
        // 2. 将该索引位置, 使用新的学生对象替换
        stuArray [index] = newStu;
    }
    }

